package com.wolfpire.workflow.spring;


/**
 * 工作流提供给外部调用统一接口
 * @author liushx
 *
 */
public interface HessianFlowService {
	
//	/**
//	 * 启动流程
//	 * @param formTypeId 表单类型ID
//	 * @param formId 表单主键ID
//	 * @param user 当前操作用户
//	 * @param org 当前操作用户组织机构
//	 */
//	@Deprecated
//	boolean startFlow(String formTypeId, Integer formId, UserBO user, OrgSocialInfoBO org);
//	
//	/**
//	 * 启动流程
//	 * @param formTypeId
//	 * @param formId
//	 * @param user
//	 * @param org
//	 * @param groupIds 格式： 正常情况：123456,特殊时(1-123456,2-234333)1是区别在某一个节点添加参与人
//	 * @return
//	 */
//	boolean startFlow1(String formTypeId, Integer formId, UserBO user, OrgSocialInfoBO org, String groupIds);
//	
//	/**
//	 * 启动流程
//	 * @param wftypeId	流程类型ID
//	 * @param formId
//	 * @param user
//	 * @param org
//	 * @param groupIds
//	 * @return
//	 */
//	boolean startFlow3(String wftypeId, Integer formId, UserBO user, OrgSocialInfoBO org,String groupIds);
//	
//	
//	/**
//	 * 启动流程 
//	 * @param formTypeId
//	 * @param formId
//	 * @param user
//	 * @param org
//	 * @param groupIds
//	 * @param userIds (人员)  格式： 正常情况：123456,特殊时(1-123456,2-234333)1是区别在某一个节点添加参与人
//	 * @return
//	 */
//	boolean startFlow2(String formTypeId, Integer formId, UserBO user, OrgSocialInfoBO org,String groupIds,String userIds);
//	
//	//-------------------------------------------------------------------------------------	
//	/**
//	 * 启动流程
//	 * @param workFlowId
//	 * @param formId
//	 * @param wftypeId
//	 * @param user
//	 * @param org
//	 * @param userMap
//	 * @return
//	 */
//	public String startFlowByWorkFlow(Long workFlowId, Integer formId, String wftypeId, UserBO user, OrgSocialInfoBO org, Map<String, Object> userMap);
//	
//	/**
//	 * 启动流程(最新)
//	 * @param formTypeId 表单类型ID
//	 * @param formId 表单ID
//	 * @param user 当前用户
//	 * @param org  当前组织机构
//	 * @param userMap 
//	 * @return
//	 */
//	public ProInstance startFlow(Long workFlowId, Integer formId, UserBO user, OrgSocialInfoBO org, Map<String, Object> userMap);
//	
//
//	/**
//	 * 根据流程类型ID和组织机构ID获取流程
//	 * @param wftypeId
//	 * @param orgId
//	 * @return
//	 */
//	public Workflow getWorkflowByWfTypeIdAndOrgIdCircle(String flowName, String wftypeId, String orgId);
//	
//	/**
//	 * 根据流程实例ID流程办理详情
//	 * @param instanceId
//	 * @return
//	 */
//	List<MyTask> flowDetail(Long instanceId);
//	
//	/**
//	 * 获取当前任务节点的操作(按钮)
//	 * @param taskId
//	 * @return
//	 */
//	List<OperateBean> queryNodeOperateByTaskId(String taskId);
//	
//	/** 
//	 * 办理提交
//	 * @param taskId  任务Id
//	 * @param execNode  执行节点名
//	 * @param defaultCondition 默认节点(决策上下文)
//	 * @param userIds　　多个参与人
//	 * @param groupIds　多个参与组
//	 * @param advice　　审批意见
//	 * @param userId   当前办理人id
//	 * @param partyName　　办理人名称
//	 * @param orgName   办理人所属机构名
//	 * @return
//	 */
//	public boolean completeTask(String taskId, String execNode,
//			String defaultCondition, String userIds, String groupIds,
//			String advice, String userId, String partyName, String orgName);
//	
//	
//	/**
//	 * 待办信息
//	 * @param orgId   机构
//	 * @param postId  岗位
//	 * @param funId　　职能
//	 * @param roleList　角色
//	 * @param userId　　用户
//	 * @return
//	 */
//	List<Map<String, Object>> queryMyTaskList(Long orgId, Long postId, Long funId, List<UserRoleBo> roleList, Long userId ,String formTypeId);
//	
//	
//	/**
//	 * 获取流程上下文地址
//	 * @return
//	 */
//	String getWorkflowCtx();
//	
//	
//	/**
//	 * 获取待办任务统计数量
//	 * @param orgId
//	 * @param postId
//	 * @param funId
//	 * @param roleList
//	 * @param userId
//	 * @param formTypeId
//	 * @return
//	 */
//	int queryMyTaskCountNum(Long orgId, Long postId, Long funId, List<UserRoleBo> roleList, Long userId ,String formTypeId);
//	
//	/**
//	 * 通过业务类型、ID，获取流程实例。
//	 * @param formTypeId
//	 * @param formId
//	 * @return
//	 */
//	Map<String, Object> queryWfInstanceByformId(String formTypeId,String formId);
//	
//	
//	/**
//	 * 通过workflowId、ID，获取流程实例。
//	 * @param formTypeId
//	 * @param formId
//	 * @return
//	 */
//	Map<String, Object> queryProInstance(Long workFlowId, String formId);
//	
//	
//	/**
//	 * 手动结束流程
//	 * @param nameId  格式(流程测试.1240023)
//	 * @param instanceId 流程实例ID
//	 */
//	 void endFlowByInstanceId(String nameId, Long instanceId);
//	 
//	 /**
//	  * 通过key取globalProperties中配置的值
//	  * @param key
//	  * @return
//	  */
//	 public String getGlobalValueByKey(String key);
//	 
//	 /**
//	  * 根据实例ID取当前活动任务
//	  * @param instanceId
//	  * @return
//	  */
//	 List<Map<String, Object>> queryActTaskByInstanceId(Long instanceId);
//	 
//	 /**
//	 * 根据实例ID获取实例信息
//	 * @param instanceId
//	 * @return
//	 */
//	 public Map<String, Object> queryWfIntByInstanceId(Long instanceId);
//	 
//	 /**
//	  * 获取待办列表（分页）
//	  * @param pageNo
//	  * @param pageSize
//	  * @param orgId
//	  * @param postId
//	  * @param funId
//	  * @param roleList
//	  * @param userId
//	  * @param proName
//	  * @param timeOut
//	  * @return
//	  */
//	 public EUDGPagination queryTaskList(int pageNo, int pageSize, Long orgId, Long postId, Long funId, 
//				List<UserRoleBo> roleList, Long userId, String proName,String timeOut);
//	 
//	 /**
//	  * 我的历史待办
//	  * @param pageNo
//	  * @param pageSize
//	  * @param userId
//	  * @return
//	  */
//	 public EUDGPagination queryHistoryTaskList(int pageNo, int pageSize, Long userId);
//	 
//	 /**
//	  * 任务驳回
//	  * @param taskId
//	  * @return
//	  */
//	 public String recover(String taskId);
//	 
//	/**
//	 * 任务驳回
//	 * @param taskId
//	 * @param remarks
//	 * @param instanceId
//	 * @param user
//	 * @param org
//	 * @return
//	 */
//	public Boolean rejectWorkFlow(String taskId, String remarks, String instanceId,UserBO user, OrgSocialInfoBO org);
//	 
//	 /**
//	  * 根据流程名字,被知会人Id获取实例信息
//	  * @param notifiedUserId	被知会人Id
//	  * @param procName		流程名字
//	  * @param statuses		知会状态
//	  * @return
//	  */
//	public List<Map<String, Object>> queryProcessNotifyListByProcName(Long receivePersonId, String procName, String statuses);
//	
//	/**
//	 * (带分页)根据流程名字,被知会人Id获取实例信息
//	 * @param pageNo	起始页
//	 * @param pageSize	页面记录数
//	 * @param notifiedUserId	被知会人Id
//	 * @param procName		流程名字
//	 * @return
//	 */
//	public EUDGPagination queryProcessNotifyListByProcName(int pageNo, int pageSize, Long receivePersonId, String procName, String statuses);
//	
//	/**
//	 * 插入一条知会数据及知会人员信息
//	 * @param instanceId	流程实例Id
//	 * @param taskId		任务Id
//	 * @param notifyOwner	发起知会人Id
//	 * @param describe		知会描述
//	 * @param ownerUserName	发起知会人名称
//	 * @param users			被知会人集合
//	 */
//	public void saveNotifyAndNotifyPersons_(Long instanceId, Long taskId,
//			Long notifyOwner, String describe, String ownerUserName,
//			Set<UserBO> users);
//	
//	/**
//	 * 根据流程实例挂起流程
//	 * @param instanceId	流程实例
//	 */
//	public void suspendProcessByProInstanceId(Long instanceId);
//	
//	/**
//	 * 根据流程实例Id恢复挂起的流程实例
//	 * @param instanceId 流程实例Id
//	 */
//	public void recoverProcessByProInstanceId(Long instanceId);
//	 
//	 /**
//	  * 根据实例ID获取催办信息
//	  * @param instanceId
//	  * @return
//	  */
//	 public List<RemindBean> queryProcessRemindList(Long instanceId);
//	 
//	 /**
//	  * 增加催办记录
//	  * @param instanceId
//	  * @param taskId
//	  * @param remindUserId
//	  * @param remindUserName
//	  * @param endRemindDate
//	  * @param status
//	  * @param remarks
//	  * @param remindedUserId
//	  * @param remindedUserName
//	  * @return
//	  */
//	 public void saveRemind(Long instanceId, Long taskId, Long remindUserId,
//				String remindUserName, Date endRemindDate,
//				String status, String remarks, String remindedUserId,
//				String remindedUserName);
//
//	/**
//	 * 我的代办关联催办记录置顶显示
//	 * @param orgId
//	 * @param postId
//	 * @param funId
//	 * @param roleList
//	 * @param userId
//	 * @param eventTable
//	 * @param formTypeId
//	 * @return
//	 */
//	 public List<Map<String, Object>> queryMyTaskListAndEventByRemind(Long orgId, Long postId, Long funId, List<UserRoleBo> roleList, Long userId ,String eventTable,String formTypeId);
//	 
//	 /**
//	  * 根据知会人员Id删除知会
//	  * @param notifyPersonId
//	  * @param status
//	  */
//	 public void deleteNotifyPerson(Integer notifyPersonId,String status);
//	 
//	/**
//	 * 获取所有代办
//	 * @return
//	 */
//	 public List<Map<String, Object>> queryStatisticalListByProName(String proName);
//	 
//	 
//	 /**
//	 * 插入一条知会数据
//	 * @param instanceId	流程实例Id
//	 * @param taskId		任务Id
//	 * @param notifyOwner	发起知会人Id
//	 * @param describe		知会描述
//	 * @param ownerUserName	发起知会人名称
//	 * @param notifyPersonsId			被知会人ID集合
//	 */
//	public void saveNotifyAndNotifyPersons(Long instanceId, Long taskId,
//			Long notifyOwner, String describe, String ownerUserName,
//			String[] notifyPersonIds,String[] notifyPersonNames);	 
//
//	/**
//	 * 根据流程定义ID取出操作按钮
//	 * @param workFlowId
//	 * @return
//	 */
//	public List<OperateBean> queryOperateList(Long workFlowId);
//
//	
//	public String getFromUrlByWorkflow(Workflow workflow);
//	
//	public String getFormUrlByInstanceId(Long instanceId);
//		
//
//	/**
//	 * 提交流程
//	 * @param taskId
//	 * @param nextNodeName
//	 * @param userIds
//	 * @param forkUserIds
//	 * @param remarks
//	 * @param user
//	 * @param org
//	 * @param freeJumpCheck
//	 * @param sendSms
//	 * @param notifyUserIds
//	 * @param notifyUserNames
//	 * @return
//	 */
//	public Boolean subWorkFlow(String taskId, String nextNodeName,
//			String userIds,String curOrgIds, String forkUserIds,String forkOrgIds, String remarks, UserBO user,
//			OrgSocialInfoBO org, Boolean freeJumpCheck, String sendSms,String notifyUserIds,String notifyUserNames);
//	
//	/**
//	 * 任务管理开始（分解任务）历史表不入库
//	 * @param taskId
//	 * @param nextNodeName
//	 * @param userIds
//	 * @param forkUserIds
//	 * @param remarks
//	 * @param user
//	 * @param org
//	 * @param freeJumpCheck
//	 * @param sendSms
//	 * @param notifyUserIds
//	 * @param notifyUserNames
//	 * @return
//	 */
//	public Boolean subWorkFlowForStart(String taskId, String nextNodeName,
//			String userIds,String curOrgIds, String forkUserIds, String remarks, UserBO user,
//			OrgSocialInfoBO org, Boolean freeJumpCheck, String sendSms,String notifyUserIds,String notifyUserNames);
//	/**
//	 * 当前任务的下一任务（线关联）
//	 * @param instanceId
//	 * @param workFlowId
//	 * @return
//	 */
//	public List<Node> getTaskNodes(String instanceId, Long workFlowId);
//	/**
//	 * 根据流程ID取任务与流程相关信息
//	 * @param instanceId
//	 * @return
//	 */
//	public List<Map<String, Object>> getTaskIdByInstanceId(String instanceId);
//	
//	/**
//	 * 根据流程ID取会签任务与流程相关信息
//	 * @param instanceId
//	 * @return
//	 */
//	public List<Map<String, Object>> queryMyTaskByInstanceIdForSign(String instanceId);
//	/**
//	 * 流程启动后为提交流程界面传递参数
//	 * @param taskId
//	 * @param workFlowId
//	 * @param instanceId
//	 * @return
//	 */
//	public Map<String, Object> getDataByTaskId(String taskId,Long workFlowId,String instanceId);
//	/**
//	 * 获取节点信息
//	 * @param deploymentId
//	 * @param nodeName
//	 * @return
//	 */
//	public Node getNodeByNodeNameAndDeploymentId(Integer deploymentId,String nodeName);
//	/**
//	 * 决策表达式返回节点去向
//	 * @param exprText
//	 * @param parameter
//	 * @return
//	 */
//	public String getDecisionNextNodeNameByExprTextAndParameter(String exprText,Map<String, String> parameter);
//	/**
//	 * 判断节点是否有配置默认人员
//	 * @param deploymentId
//	 * @param nodeName
//	 * @return
//	 */
//	public Boolean hasNodeActorByNodeNameAndDeploymentId(Integer deploymentId,String nodeName);
//
//	/**
//	 * obj转成json格式的String
//	 * @param obj
//	 * @return
//	 */
//	public String getJsonFromObjectToString(Object obj);
//	
//	
//	public String getNodeRoleTree(String roleIds);
//	
//	public String getUserTreeByRoleId(Long roleId);
//	
//	public String getNodePostTree(String postIds);
//	
//	public String getUserTreeByPostId(Long postId);
//	
//	public String getNodeOrgTree(String orgIds);
//	
//	public String getUserTreeByOrgId(Long orgId);
//	
//	/**
//	 * 获取节点默认人员的ID与类型
//	 * @param deploymentId
//	 * @param nodeName
//	 * @return
//	 */
//	public List<Map<String, Object>> getNodeActorUserIdAndTypeByNodeNameAndDeploymentId(Integer deploymentId,String nodeName);
//	
//	/**
//	 * 获取所有2级流程类型
//	 * @return
//	 */
//	public List<List<String>> getAllSubsWftype();
//	
//	/**
//	 * 根据实例ID获取审核详情列表（办理详情）
//	 * @param instanceId 流程实例ID
//	 * @return
//	 */
//	public List<Map<String, Object>> queryTaskList(Long instanceId);
//	
//	/**
//	 * 获取历史对象
//	 * @param taskId
//	 * @return
//	 */
//	public List<Map<String, Object>> getTaskByTaskId(Long taskId);
//	
//	/**
//	 * 获取流程对象
//	 * @param instanceId
//	 * @return
//	 */
//	public ProInstance getProByInstanceId(Long instanceId);
//	
//	/**
//	 * 获取节点人员
//	 * @param nodeId
//	 * @return
//	 */
//	public List<Map<String, Object>> getNodeActors(Integer nodeId);
//	
//	
//	public String orgTree(Long id);
//	
//	public EUDGPagination userList(Long id,String type);
//	
//	/**
//	 * 下一任务列表
//	 * @param workFlowId
//	 * @param curNodeName
//	 * @param deploymentId
//	 * @return
//	 */
//	public String nextTaskList(Long workFlowId, String curNodeName,
//			Integer deploymentId);
//	
//	/**
//	 * 获取与业务关联的代办列表 （申请）
//	 * @param pageNo
//	 * @param pageSize
//	 * @param orgId
//	 * @param postId
//	 * @param funId
//	 * @param roleList
//	 * @param userId
//	 * @param userName(发起人名字可为null)
//	 * @param eventTable --ConstantValue.DATABASETABLESPACE + ".T_TASKMNG"（数据库名.表名）
//	 * @param eventTablesql --"E.TASK_ID, E.TASK_NAME, E.TASK_SN, E.BSTYPE, E.PRIORITY, E.INDICATORS, E.DESC_, E.USERID"（自己的表单在列表上返回的对象）
//	 * @param eventTableRelevance --"E.TASK_ID"（关联工作流的表单字段）
//	 * @param formTypeId
//	 * @param eventTableSelectsql--" AND E.USERID=184 AND E.TASK_NAME LIKE '%dasdas%' AND E.BSTYPE = '1'"（自己表单的查询sql）
//	 * @return
//	 */
//	public EUDGPagination queryNewTaskList(int pageNo, int pageSize,
//			Long orgId, Long postId, Long funId, List<UserRoleBo> roleList,
//			Long userId, String userName, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String formTypeId, String eventTableSelectsql,String attentionType);
//	
//	
//	/**
//	 * 获取与业务关联的参与列表 (经办)
//	 * @param page
//	 * @param pageSize
//	 * @param userId
//	 * @param userName（可为null）
//	 * @param status（流程状态可为null)
//	 * @param eventTable --ConstantValue.DATABASETABLESPACE + ".T_TASKMNG"（数据库名.表名）
//	 * @param eventTablesql --"E.TASK_ID, E.TASK_NAME, E.TASK_SN, E.BSTYPE, E.PRIORITY, E.INDICATORS, E.DESC_, E.USERID"（自己的表单在列表上返回的对象）
//	 * @param eventTableRelevance --"E.TASK_ID"（关联工作流的表单字段）
//	 * @param formTypeId
//	 * @param eventTableSelectsql--" AND E.USERID=184 AND E.TASK_NAME LIKE '%dasdas%' AND E.BSTYPE = '1'"（自己表单的查询sql）
//	 * @return
//	 */
//	public EUDGPagination queryParticipationList(int pageNo, int pageSize,
//			Long userId, String userName, String status, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String formTypeId, String eventTableSelectsql);
//	
//	/**
//	 * 获取与业务关联的申请列表
//	 * @param pageNo
//	 * @param pageSize
//	 * @param userId
//	 * @param userName(发起人名字可为null)
//	 * @param status（流程状态可为null)
//	 * @param eventTable --ConstantValue.DATABASETABLESPACE + ".T_TASKMNG"（数据库名.表名）
//	 * @param eventTablesql --"E.TASK_ID, E.TASK_NAME, E.TASK_SN, E.BSTYPE, E.PRIORITY, E.INDICATORS, E.DESC_, E.USERID"（自己的表单在列表上返回的对象）
//	 * @param eventTableRelevance --"E.TASK_ID"（关联工作流的表单字段）
//	 * @param formTypeId
//	 * @param eventTableSelectsql--" AND E.USERID=184 AND E.TASK_NAME LIKE '%dasdas%' AND E.BSTYPE = '1'"（自己表单的查询sql）
//	 * @return
//	 */
//	public EUDGPagination queryAppliedList(int pageNo, int pageSize,
//			Long userId, String userName, String status, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String formTypeId, String eventTableSelectsql,String attentionType);
//	
//
//	
//	/**
//	 * 授权(转办)
//	 * @param taskId
//	 * @param user
//	 * @param nextStaffIds
//	 * @param userNamesTexts
//	 * @param advice
//	 * @return
//	 * @throws Exception
//	 */
//	public Boolean changeTaskPerson(Long taskId,String nodeId, UserBO user, String nextStaffIds,String userNamesTexts,String curOrgIds, String advice) throws Exception;
//	
//	/**
//	 * 获取与业务关联的已完结列表
//	 * @param pageNo
//	 * @param pageSize
//	 * @param userId
//	 * @param userName(发起人名字可为null)
//	 * @param eventTable --ConstantValue.DATABASETABLESPACE + ".T_TASKMNG"（数据库名.表名）
//	 * @param eventTablesql --"E.TASK_ID, E.TASK_NAME, E.TASK_SN, E.BSTYPE, E.PRIORITY, E.INDICATORS, E.DESC_, E.USERID"（自己的表单在列表上返回的对象）
//	 * @param eventTableRelevance --"E.TASK_ID"（关联工作流的表单字段）
//	 * @param formTypeId
//	 * @param eventTableSelectsql--" AND E.USERID=184 AND E.TASK_NAME LIKE '%dasdas%' AND E.BSTYPE = '1'"（自己表单的查询sql）
//	 * @return
//	 */
//	public EUDGPagination queryEndProcList(int pageNo, int pageSize,
//			Long userId, String userName, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String formTypeId, String eventTableSelectsql,String attentionType);
//	
//	/**
//	 * 获取与任务工单关联列表
//	 * @param pageNo
//	 * @param pageSize
//	 * @param userId
//	 * @param userName(发起人名字可为null)
//	 * @param status（流程状态可为null)
//	 * @param eventTable --ConstantValue.DATABASETABLESPACE + ".T_TASKMNG"（数据库名.表名）
//	 * @param eventTablesql --"E.TASK_ID, E.TASK_NAME, E.TASK_SN, E.BSTYPE, E.PRIORITY, E.INDICATORS, E.DESC_, E.USERID"（自己的表单在列表上返回的对象）
//	 * @param eventTableRelevance --"E.TASK_ID"（关联工作流的表单字段）
//	 * @param formTypeId
//	 * @param eventTableSelectsql--" AND E.USERID=184 AND E.TASK_NAME LIKE '%dasdas%' AND E.BSTYPE = '1'"（自己表单的查询sql）
//	 * @return
//	 */
//	public EUDGPagination queryTaskMngList(int pageNo, int pageSize,
//			Long userId, String userName, String status, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String formTypeId, String eventTableSelectsql, String attentionType);
//
//	
//	public Map<String, Object> getStartTimeAndTimeLimitByTaskId(String taskId);
//	
//	public Map<String, Object> getStartTimeAndTimeLimitByHistoryTaskId(String taskId);
//
//	/**
//	 * 会签任务办理
//	 * @param taskId 
//	 * @param deploymentId
//	 * @param advice 办理意见
//	 * @param user
//	 * @param org
//	 */
//	public String signTaskAudit(String taskId, Integer deploymentId, String advice, UserBO user, OrgSocialInfoBO org,String notifyUserIds,String notifyUserNames);
//
//	
//	/**
//	 * 添加关注
//	 * @param keyword 关联外键（表单实例）
//	 * @param formType 表单类型
//	 * @param userId 用户ID
//	 * @param userName 用户名称
//	 * @param beginTime 关注时间
//	 * @return
//	 */
//	public Boolean addAttention(Long keyword, String formType ,Long userId,String userName, Date beginTime);
//	
//	/**
//	 * 取消关注
//	 * @param keyword 关联外键（表单实例）
//	 * @param formType 表单类型
//	 * @param userId 用户ID
//	 * @param userName 用户名称
//	 * @return
//	 */
//	public Boolean cancleAttention(Long keyword, String formType , Long userId);
//	
//	/**
//	 * 是否存在关注
//	 * @param keyword 关联外键（表单实例）
//	 * @param formType 表单类型
//	 * @param userId 用户ID
//	 * @return
//	 */
//	public Boolean hasAttention(Long keyword, String formType, Long userId);
//	
//	/**
//	 * 通过orgId获取user列表(分页)
//	 * @param id 组织结构ID
//	 * @return
//	 */
//	public EUDGPagination userListByOrgId(Long id);
//	
//	/**
//	 * 可展示同一流程实例多条或单条办理环节的参与列表(关联业务)
//	 * @param pageNo 
//	 * @param pageSize
//	 * @param userId
//	 * @param userName
//	 * @param status
//	 * @param eventTable
//	 * @param eventTablesql
//	 * @param eventTableRelevance
//	 * @param formTypeId
//	 * @param eventTableSelectsql
//	 * @param isSignle true-展示流程实例的最新办理环节，false-展示同一实例的全部已办理环节
//	 * @return
//	 */
//	public EUDGPagination queryAdrParticipationList(int pageNo, int pageSize,
//			Long userId, String userName, String status, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String formTypeId, String eventTableSelectsql, Boolean isSignle,String attentionType);
//	
//	/**
//	 * 根据节点ID找节点
//	 * @param nodeId
//	 * @return
//	 */
//	public Node getNodeByNodeId(Integer nodeId);
//	
//	public Map<String, Object> getDataByTaskIdForStart(Long workFlowId,Map<String, String> tempparameter);
//	
//	/**
//	 * 针对事件流程的提交到下一个节点
//	 * @param instanceId
//	 * @param taskId
//	 * @param nextNodeName
//	 * @param userIds
//	 * @param forkUserIds
//	 * @param remarks
//	 * @param user
//	 * @param org
//	 * @param freeJumpCheck
//	 * @param sendSms
//	 * @return
//	 */
//	public Boolean subWorkFlowForEndingAndEvaluate(Long instanceId, String taskId, String nextNodeName,
//			String userIds,String curOrgIds, String forkUserIds, String remarks, UserBO user,
//			OrgSocialInfoBO org, Boolean freeJumpCheck, String sendSms);
//	
//	/**
//	 * 添加催办
//	 * @param instanceId	流程实例ID
//	 * @param taskIds		任务ID串，可以传多个taskId，如“taskId1,taskId2,taskId3...”
//	 * @param remindUserId	催办人ID
//	 * @param remindUserName	催办人名称
//	 * @param remarks		催办意见，可为null
//	 * @param remindedUserId	被催人ID,可传多个Id,eg:"userId1,userId2,userId3..."
//	 * @param remindedUserName	被催人名称,可传多个Name,eg:"name1,name2,name3..."
//	 * @return
//	 */
//	public Boolean addRemind(Long instanceId, String taskIds, Long remindUserId,
//			String remindUserName, String remarks, String remindedUserId,
//			String remindedUserName);
//	
//	/**
//	 * 发送短信
//	 * @param isSendSms("true" or "false" or null)
//	 * @param userId	当前用户Id
//	 * @param orgCode	当前用户组织
//	 * @param userIds	短信接收者Id串,eg("userId1,userId2,userId3...")
//	 * @param taskId	任务节点Id,可为null
//	 * @param taskImpl		任务,可为null,与任务节点Id,两个必填1个
//	 * @param userfromName	短信发送者
//	 * @param nextNodeName	下个节点名称
//	 * @param smsContent	短信内容,可为null
//	 * @param otherMobileNums	短信抄送者号码串,eg("num1,num2,num3...")可为null
//	 */
//	public void sendSms(String isSendSms, Long userId, String orgCode,
//			String userIds, String taskId,  Object taskImpl, String userfromName,
//			String nextNodeName, String smsContent, String otherMobileNums);
//	
//	/**
//	 * 催办列表
//	 * @param pageNo
//	 * @param pageSize
//	 * @param userId	流程发起人ID
//	 * @param userName	流程发起人名称
//	 * @param status	流程状态
//	 * @param remindUserId	催办人ID
//	 * @param remindUserName	催办人名称
//	 * @param remindedUserId	被催办人ID
//	 * @param remindedUserName	被催办人名称
//	 * @param formTypeId	表单类型
//	 * @param eventTable	 --ConstantValue.DATABASETABLESPACE + ".T_TASKMNG"（数据库名.表名）
//	 * @param eventTablesql  --"E.TASK_ID, E.TASK_NAME, E.TASK_SN, E.BSTYPE, E.PRIORITY, E.INDICATORS, E.DESC_, E.USERID"（自己的表单在列表上返回的对象）
//	 * @param eventTableRelevance	--"E.TASK_ID"（关联工作流的表单字段）
//	 * @param eventTableSelectsql	--" AND E.USERID=184 AND E.TASK_NAME LIKE '%dasdas%' AND E.BSTYPE = '1'"（自己表单的查询sql）
//	 * @return
//	 */
//	public EUDGPagination queryRemindList(int pageNo, int pageSize,
//			Long userId, String userName, String status, Long remindUserId,
//			String remindUserName, Long remindedUserId,
//			String remindedUserName, String formTypeId, String eventTable,
//			String eventTablesql, String eventTableRelevance,
//			String eventTableSelectsql);
//	
//	public List<Map<String, Object>> getTaskListByInstanceId(Long instanceId);
//	
//	/**
//	 * 获取未完结流程的当前节点与参与者
//	 * @param instanceId
//	 * @return
//	 */
//	public Map<String, Object> getPersonByInstanceId(Long instanceId);
//	
//	/**
//	 * 获取未完结流程的当前会签节点的参与者
//	 * @param instanceId
//	 * @return
//	 */
//	public String getPersonByInstanceIdForSign(Long instanceId);
//	
//	/**
//	 * 根据职位和组织查询用户
//	 * @param orgId	当前用户组织ID
//	 * @param level	0-分流， 1-上报，2-越级
//	 * @param positionName   职位名称
//	 * @param positionId   职位ID
//	 * @param includeNext  是否包含下级组织
//	 * 职位名称和职位ID两个填一个值就可以,是否包含下级如果值为001值，查询的时候会查询当前组织以及下级组织的用户
//	 * @return
//	 */
//	public Map<String, Object> getUsersForEvent(Long orgId, int level, String positionName, Long positionId, String includeNext);
//	
//	/**
//	 * 针对事件流程，判断当前节点和下一个节点之间是属于什么关系类型
//	 * @param curnodeName
//	 * @param nodeName
//	 * @return level(0-分流， 1-上报，2-越级),positionName
//	 */
//	public Map<String, Object> getTurnLevel(String curnodeName, String nodeName);
//
//	/**
//	 * 会签节点历史表先入库
//	 * @param taskId
//	 * @param curNodeId
//	 * @param advice
//	 * @param user
//	 * @param org
//	 * @return
//	 */
//	public Boolean saveWFTaskForSign(String taskId, String curNodeId , String advice, UserBO user, OrgSocialInfoBO org);
//
//	/**
//	 * 取流程
//	 * @param instanceId
//	 * @return
//	 */
//	public ProInstance getProInstanceByInstanceId(Long instanceId);
//	
//	/**
//	 * 根据任务判断是否会签
//	 * @param taskId
//	 * @return
//	 */
//	public Map<String, Object> getTaskDescByTaskId(String taskId);
//	
//	/**
//	 * 找对应任务
//	 * @param instanceId
//	 * @param userId
//	 * @return
//	 */
//	public Map<String, Object> matchTaskAndUser(Long instanceId,Long userId);
//	
//	/**
//	 * 工作流办理页面参数
//	 * @param taskId
//	 * @param instanceId
//	 * @param workflowId
//	 * @param dynamicJump
//	 * @param params
//	 * @return 
//	 */
//	public Map<String, Object> initFlowInfo(String taskId, Long instanceId, Long workflowId, Map<String, Object> params);
//	
//	/**
//	 * 根据参数查询用户list(orgId,positionId,roleId,userId)
//	 * @param params
//	 * @return
//	 */
//	public List<UserBO> getUsersByMapInfo(Map<String, Object> params);
//	
//	/**
//	 * 根据流程实例ID获取流程实例办理详情
//	 * @param instanceId
//	 * @return
//	 */
//	public List<Map<String, Object>> queryProInstanceDetail(Long instanceId);
//	
//	/**
//	 * 根据任务ID是否为最新任务ID
//	 * @param taskId
//	 * @return
//	 */
//	public Boolean isCurTask(String taskId);
}
